home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 2 / Amiga Tools 2.iso / tools / mg / src.lzh / h / def.h < prev    next >
C/C++ Source or Header  |  1990-05-23  |  20KB  |  647 lines

  1. #ifndef    DEF_H
  2. #define DEF_H
  3. /*
  4.  * This file is the general header file for all parts of the MicroEMACS
  5.  * display editor. It contains all of the general definitions and macros. It
  6.  * _must_ be included in any source file after all the option include files.
  7.  */
  8. #include    "sysdef.h"    /* Order is critical.         */
  9. #include    "ttydef.h"
  10. #include    "chrdef.h"
  11.  
  12. /*
  13.  * If your system and/or compiler does not support the "void" type then
  14.  * define NO_VOID_TYPE in sysdef.h.  In the absence of some other definition
  15.  * for VOID, the default in that case will be to turn it into an int, which
  16.  * works with most compilers that don't support void.  In the absence of any
  17.  * definition of VOID or NO_VOID_TYPE, the default is to assume void is
  18.  * supported, which should be the case for most modern C compilers.
  19.  */
  20.  
  21. #ifdef NO_VOID_TYPE
  22. #  undef VOID
  23. #  define VOID int        /* Default for no void is int */
  24. #else
  25. #ifndef VOID
  26. #  define VOID void        /* Just use normal void */
  27. #endif                /* VOID */
  28. #endif                /* NO_VOID_TYPE */
  29.  
  30. /*
  31.  * If your system and/or compiler doesn't support prototypes, NO_PROTO in
  32.  * sysdef.h. This will cause all parameters to vanish.
  33.  */
  34.  
  35. #ifdef    NO_PROTO
  36. #define PROTO(a)    ()
  37. #else
  38. #define PROTO(a)    a
  39. #endif
  40.  
  41. /*
  42.  * Table sizes, etc.
  43.  */
  44. #define NFILEN    80        /* Length, file name.         */
  45. #define NBUFN    24        /* Length, buffer name.         */
  46. #define NMACN    80        /* Length, macro name.         */
  47. #define NLINE    256        /* Length, line.         */
  48. #define PBMODES 4        /* modes per buffer         */
  49. #define NKBDM    256        /* Length, keyboard macro.     */
  50. #define NPAT    80        /* Length, pattern.         */
  51. #define HUGE    1000        /* A rather large number.     */
  52. #define NSRCH    128        /* Undoable search commands.     */
  53. #define NXNAME    128        /* Length, extended command.     */
  54. #define NKNAME    20        /* Length, key names         */
  55. /*
  56.  * Universal.
  57.  */
  58. #define FALSE    0        /* False, no, bad, etc.         */
  59. #define TRUE    1        /* True, yes, good, etc.     */
  60. #define ABORT    2        /* Death, ^G, abort, etc.     */
  61.  
  62. #define ERASE    ABORT        /* epresf -> erase _now_     */
  63.  
  64. /*
  65.  * These flag bits keep track of some aspects of the last command. The CFCPCN
  66.  * flag controls goal column setting. The CFKILL flag controls the clearing
  67.  * versus appending of data in the kill buffer.
  68.  */
  69. #define CFCPCN    0x0001        /* Last command was C-P, C-N     */
  70. #define CFKILL    0x0002        /* Last command was a kill     */
  71. #define CFINS    0x0004        /* Last command was self-insert */
  72.  
  73. /*
  74.  * File I/O.
  75.  */
  76. #define FIOSUC    0        /* Success.             */
  77. #define FIOFNF    1        /* File not found.         */
  78. #define FIOEOF    2        /* End of file.             */
  79. #define FIOERR    3        /* Error.             */
  80. #define FIOLONG 4        /* long line partially read     */
  81.  
  82. /*
  83.  * Directory I/O.
  84.  */
  85. #define DIOSUC    0        /* Success.             */
  86. #define DIOEOF    1        /* End of file.             */
  87. #define DIOERR    2        /* Error.             */
  88.  
  89. /*
  90.  * Display colors.
  91.  */
  92. #define CNONE    0        /* Unknown color.         */
  93. #define CTEXT    1        /* Text color.             */
  94. #define CMODE    2        /* Mode line color.         */
  95.  
  96. /* Flags for keyboard invoked functions */
  97.  
  98. #define FFUNIV        1    /* universal argument         */
  99. #define FFNEGARG    2    /* negitive only argument     */
  100. #define FFOTHARG    4    /* other argument         */
  101. #define FFARG        7    /* any argument             */
  102. #define FFRAND        8    /* Called by other function     */
  103.  
  104. /*
  105.  * Flags for "getkey". SOFTCR first. It should be a KCHAR that's not
  106.  * otherwise used. If the defualt won't work, set it in ttydef.h. SOFTCR is
  107.  * used to tag the end of strings in macros. You should use SEESCR if you
  108.  * want to get a real string, including carriage returns; SOFTCR will be the
  109.  * end of string marker. If you're getting some number of keys that
  110.  * terminates based on the keys (keymap searches, or some such), you should
  111.  * use DISSCR. It will throw out the SOFTCR that follows the argument you're
  112.  * reading in the macro (or startup buffer, which uses the same code). If the
  113.  * argument doesn't terminate correctly, the next argument read will have
  114.  * bogus values (either the end of your arg, or with you getting part of
  115.  * theirs). Setting niether causes the SOFTCR to turn into a CR. This is what
  116.  * eread and friends do.
  117.  */
  118. #ifndef    SOFTCR
  119. #define SOFTCR        0x1000    /* Avoid the metabit */
  120. #endif
  121. #define    PROMPT        0x01    /* Delayed prompt, if supported */
  122. #define    SEESCR        0x02    /* Pass SOFTCR unmodifed */
  123. #define DISSCR        0x04    /* Discard SOFTCR (with lookahead) */
  124. #define CRFLAGS        0x06    /* All the SOFTCR flags at once */
  125.  
  126. /*
  127.  * Flags for "eread".
  128.  */
  129. #define EFFUNC    0x0001        /* Autocomplete functions.     */
  130. #define EFBUF    0x0002        /* Autocomplete buffers.     */
  131. #define EFFILE    0x0004        /* " files (maybe someday)     */
  132. #define EFMACRO    0x0008        /* Autocomplete only macros     */
  133. #define    EFFORCE    0x0009        /* Must complete to known name     */
  134. #define EFAUTO    0x000F        /* Some autocompleteion on     */
  135. #define EFNEW    0x0010        /* New prompt.             */
  136. #define EFCR    0x0020        /* Echo CR at end; last read.     */
  137.  
  138. /*
  139.  * Flags for kinsert
  140.  */
  141.  
  142. #define KFORW    0
  143. #define KBACK    1
  144. /*
  145.  * Externals.
  146.  */
  147. extern int      thisflag;
  148. extern int      lastflag;
  149. extern int      curgoal;
  150. extern int      epresf;
  151. extern int      sgarbf;
  152. extern int      mode;
  153. extern char     pat[];
  154. extern int      nrow;
  155. extern int      ncol;
  156. extern int      ttrow;
  157. extern int      ttcol;
  158. extern int      tceeol;
  159. extern int      tcinsl;
  160. extern int      tcdell;
  161. extern char     cinfo[];
  162. extern char    *keystrings[];
  163. #ifdef    NO_PROTO
  164. extern VOID     ewprintf();
  165. extern VOID     update();
  166. extern char    *keyname();
  167. extern char    *adjustname();
  168. extern VOID     kdelete();
  169. extern VOID     lchange();
  170. #endif
  171.  
  172. #ifndef    ANSI
  173. /*
  174.  * Standard I/O.
  175.  */
  176. extern char    *strcpy();
  177. extern char    *strcat();
  178. extern char    *malloc();
  179. #endif
  180.  
  181. /*
  182.  * This is the beginnings of the prototype list for all externals. We give
  183.  * prototypes for all external functions from all files that have arguments
  184.  * that are standard C type and return standard C types. Functions that
  185.  * return mg-specific types have prototypes in the .h files that define those
  186.  * types. Things are set up so that if you take it out of the ifdef's, you
  187.  * won't get the parameters unless your compiler can support them. I'm not
  188.  * sure what will happen in that case.
  189.  */
  190.  
  191. #ifndef    NO_PROTO
  192. /* Prototypes for functions defined in help.c */
  193. int             desckey
  194.                 PROTO((int f, int n));
  195. int             wallchart
  196.                 PROTO((int f, int n));
  197. int             help_help
  198.                 PROTO((int f, int n));
  199. int             apropos_command
  200.                 PROTO((int f, int n));
  201.  
  202. /* Prototypes for functions defined in macro.c */
  203. int             definemacro
  204.                 PROTO((int f, int n));
  205. int             finishmacro
  206.                 PROTO((int f, int n));
  207. int             executemacro
  208.                 PROTO((int f, int n));
  209. int             insertmacro
  210.                 PROTO((int f, int n));
  211. int             namemacro
  212.                 PROTO((int f, int n));
  213. int             macroset
  214.                 PROTO((int f, int n));
  215. int             macroquery
  216.                 PROTO((int f, int n));
  217.  
  218. /* Prototypes for functions defined in keymap.c */
  219. int
  220.                 complete_function(char *fname, int c);
  221. char           *function_name
  222.                 PROTO((int (*fpoint) ()));
  223. int             (*
  224.                          name_function PROTO((char *fname))) ();
  225.  
  226. /* Prototypes for functions defined in display.c */
  227. VOID            vtinit
  228.                 PROTO((VOID));
  229. VOID            vttidy
  230.                 PROTO((VOID));
  231. VOID            vtmove
  232.                 PROTO((int row, int col));
  233. VOID            vtputc
  234.                 PROTO((int c));
  235. VOID            vtpute
  236.                 PROTO((int c));
  237. VOID            vteeol
  238.                 PROTO((VOID));
  239. VOID            update
  240.                 PROTO((VOID));
  241. VOID            updext
  242.                 PROTO((int currow, int curcol));
  243. int             vtputs
  244.                 PROTO((char *s));
  245.  
  246. /* Prototypes for functions defined in version.c */
  247. int             showversion
  248.                 PROTO((int f, int n));
  249.  
  250. /* Prototypes for functions defined in cinfo.c */
  251. char           *keyname
  252.                 PROTO((char *cp, int k));
  253.  
  254. /* Prototypes for functions defined in dir.c */
  255. VOID            dirinit
  256.                 PROTO((VOID));
  257. int             changedir
  258.                 PROTO((int f, int n));
  259. int             showcwdir
  260.                 PROTO((int f, int n));
  261. int             filevisit
  262.                 PROTO((int f, int n));
  263. int             filesave
  264.                 PROTO((int f, int n));
  265. int             filewrite
  266.                 PROTO((int f, int n));
  267. int             makebkfile
  268.                 PROTO((int f, int n));
  269. VOID            makename
  270.                 PROTO((char bname[], char fname[]));
  271. char           *adjustname
  272.                 PROTO((char *));
  273.  
  274. /* Prototypes for functions defined in extend.c */
  275. int             load
  276.                 PROTO((char *));
  277. int             extend
  278.                 PROTO((int f, int n));
  279. int             evalexpr
  280.                 PROTO((int f, int n));
  281. int             evalbuffer
  282.                 PROTO((int f, int n));
  283. int             evalfile
  284.                 PROTO((int f, int n));
  285. int             load
  286.                 PROTO((char *fname));
  287. int             excline
  288.                 PROTO((char *line, int len));
  289.  
  290. /* Prototypes for functions defined in bind.c */
  291. int             insert
  292.                 PROTO((int f, int n));
  293. int             bindtokey
  294.                 PROTO((int f, int n));
  295. int             localbind
  296.                 PROTO((int f, int n));
  297. int             define_key
  298.                 PROTO((int f, int n));
  299. int             unbindtokey
  300.                 PROTO((int f, int n));
  301. int             localunbind
  302.                 PROTO((int f, int n));
  303.  
  304. /* Prototypes for functions defined in re_search.c */
  305. int             re_forwsearch
  306.                 PROTO((int f, int n));
  307. int             re_backsearch
  308.                 PROTO((int f, int n));
  309. int             re_searchagain
  310.                 PROTO((int f, int n));
  311. int             re_queryrepl
  312.                 PROTO((int f, int n));
  313. int             setcasefold
  314.                 PROTO((int f, int n));
  315. int             delmatchlines
  316.                 PROTO((int f, int n));
  317. int             delnonmatchlines
  318.                 PROTO((int f, int n));
  319. int             cntmatchlines
  320.                 PROTO((int f, int n));
  321. int             cntnonmatchlines
  322.                 PROTO((int f, int n));
  323.  
  324. /*
  325.  * Prototypes for functions defined in alloca.c Could well be wrong for your
  326.  * system, but I dunno how else to deal with it.
  327.  */
  328. VOID           *alloca
  329.                 PROTO((unsigned));
  330.  
  331. /* Prototypes for functions defined in buffer.c */
  332. int             usebuffer
  333.                 PROTO((int f, int n));
  334. int             poptobuffer
  335.                 PROTO((int f, int n));
  336. int             killbuffer
  337.                 PROTO((int f, int n));
  338. int             savebuffers
  339.                 PROTO((int f, int n));
  340. int             listbuffers
  341.                 PROTO((int f, int n));
  342. int             anycb
  343.                 PROTO((int f));
  344. int             bufferinsert
  345.                 PROTO((int f, int n));
  346. int             notmodified
  347.                 PROTO((int f, int n));
  348.  
  349. /* Prototypes for functions defined in basic.c */
  350. int             gotobol
  351.                 PROTO((int f, int n));
  352. int             backchar
  353.                 PROTO((int f, int n));
  354. int             gotoeol
  355.                 PROTO((int f, int n));
  356. int             forwchar
  357.                 PROTO((int f, int n));
  358. int             gotobob
  359.                 PROTO((int f, int n));
  360. int             gotoeob
  361.                 PROTO((int f, int n));
  362. int             forwline
  363.                 PROTO((int f, int n));
  364. int             backline
  365.                 PROTO((int f, int n));
  366. VOID            setgoal
  367.                 PROTO((VOID));
  368. int             forwpage
  369.                 PROTO((int f, int n));
  370. int             backpage
  371.                 PROTO((int f, int n));
  372. int             forw1page
  373.                 PROTO((int f, int n));
  374. int             back1page
  375.                 PROTO((int f, int n));
  376. int             pagenext
  377.                 PROTO((int f, int n));
  378. VOID            isetmark
  379.                 PROTO((VOID));
  380. int             setmark
  381.                 PROTO((int f, int n));
  382. int             swapmark
  383.                 PROTO((int f, int n));
  384. int             gotoline
  385.                 PROTO((int f, int n));
  386.  
  387. /* Prototypes for functions defined in modes.c */
  388. int             indentmode
  389.                 PROTO((int f, int n));
  390. int             fillmode
  391.                 PROTO((int f, int n));
  392. int             blinkparen
  393.                 PROTO((int f, int n));
  394. int             overwrite
  395.                 PROTO((int f, int n));
  396. int             set_default_mode
  397.                 PROTO((int f, int n));
  398. int             notabmode
  399.                 PROTO((int f, int n));
  400.  
  401. /* Prototypes for functions defined in dired.c */
  402. int             dired
  403.                 PROTO((int f, int n));
  404. int             d_otherwindow
  405.                 PROTO((int f, int n));
  406. int             d_del
  407.                 PROTO((int f, int n));
  408. int             d_undel
  409.                 PROTO((int f, int n));
  410. int             d_undelbak
  411.                 PROTO((int f, int n));
  412. int             d_findfile
  413.                 PROTO((int f, int n));
  414. int             d_ffotherwindow
  415.                 PROTO((int f, int n));
  416. int             d_expunge
  417.                 PROTO((int f, int n));
  418. int             d_copy
  419.                 PROTO((int f, int n));
  420. int             d_rename
  421.                 PROTO((int f, int n));
  422.  
  423. /* Prototypes for functions defined in word.c */
  424. int             backword
  425.                 PROTO((int f, int n));
  426. int             forwword
  427.                 PROTO((int f, int n));
  428. int             upperword
  429.                 PROTO((int f, int n));
  430. int             lowerword
  431.                 PROTO((int f, int n));
  432. int             capword
  433.                 PROTO((int f, int n));
  434. int             delfword
  435.                 PROTO((int f, int n));
  436. int             delbword
  437.                 PROTO((int f, int n));
  438. int             inword
  439.                 PROTO((VOID));
  440.  
  441. /* Prototypes for functions defined in window.c */
  442. int             reposition
  443.                 PROTO((int f, int n));
  444. int             refresh
  445.                 PROTO((int f, int n));
  446. int             nextwind
  447.                 PROTO((int f, int n));
  448. int             prevwind
  449.                 PROTO((int f, int n));
  450. int             onlywind
  451.                 PROTO((int f, int n));
  452. int             splitwind
  453.                 PROTO((int f, int n));
  454. int             enlargewind
  455.                 PROTO((int f, int n));
  456. int             shrinkwind
  457.                 PROTO((int f, int n));
  458. int             delwind
  459.                 PROTO((int f, int n));
  460.  
  461. /* Prototypes for functions defined in search.c */
  462. int             forwsearch
  463.                 PROTO((int f, int n));
  464. int             backsearch
  465.                 PROTO((int f, int n));
  466. int             searchagain
  467.                 PROTO((int f, int n));
  468. int             forwisearch
  469.                 PROTO((int f, int n));
  470. int             backisearch
  471.                 PROTO((int f, int n));
  472. int             isearch
  473.                 PROTO((int dir));
  474. int             queryrepl
  475.                 PROTO((int f, int n));
  476. int             forwsrch
  477.                 PROTO((VOID));
  478. int             backsrch
  479.                 PROTO((VOID));
  480. int             readpattern
  481.                 PROTO((char *prompt));
  482.  
  483. /* Prototypes for functions defined in region.c */
  484. int             killregion
  485.                 PROTO((int f, int n));
  486. int             copyregion
  487.                 PROTO((int f, int n));
  488. int             lowerregion
  489.                 PROTO((int f, int n));
  490. int             upperregion
  491.                 PROTO((int f, int n));
  492. int             prefixregion
  493.                 PROTO((int f, int n));
  494. int             setprefix
  495.                 PROTO((int f, int n));
  496.  
  497.  
  498. /* Prototypes for functions defined in paragraph.c */
  499. int             gotobop
  500.                 PROTO((int f, int n));
  501. int             gotoeop
  502.                 PROTO((int f, int n));
  503. int             fillpara
  504.                 PROTO((int f, int n));
  505. int             killpara
  506.                 PROTO((int f, int n));
  507. int             fillword
  508.                 PROTO((int f, int n));
  509. int             setfillcol
  510.                 PROTO((int f, int n));
  511.  
  512. /* Prototypes for functions defined in match.c */
  513. int             showmatch
  514.                 PROTO((int f, int n));
  515.  
  516. /* Prototypes for functions defined in main.c */
  517. int             quit
  518.                 PROTO((int f, int n));
  519. int             ctrlg
  520.                 PROTO((int f, int n));
  521.  
  522. /* Prototypes for functions defined in kbd.c */
  523. int             do_meta
  524.                 PROTO((int f, int n));
  525. int             bsmap
  526.                 PROTO((int f, int n));
  527. int             selfinsert
  528.                 PROTO((int f, int n));
  529. VOID            ungetkey
  530.                 PROTO((int c));
  531. int             getkey
  532.                 PROTO((int flag));
  533. int             doin
  534.                 PROTO((VOID));
  535. int             rescan
  536.                 PROTO((int f, int n));
  537. int             quote
  538.                 PROTO((int f, int n));
  539. int             negative_argument
  540.                 PROTO((int f, int n));
  541. int             digit_argument
  542.                 PROTO((int f, int n));
  543. int             universal_argument
  544.                 PROTO((int f, int n));
  545.  
  546. /* Prototypes for functions defined in file.c */
  547. int             fileinsert
  548.                 PROTO((int f, int n));
  549. int             filevisit
  550.                 PROTO((int f, int n));
  551. int             revertbuffer
  552.                 PROTO((int f, int n));
  553. int             poptofile
  554.                 PROTO((int f, int n));
  555. int             readin
  556.                 PROTO((char *fname));
  557. int             insertfile
  558.                 PROTO((char *fname, char *newname));
  559.  
  560. /* Prototypes for functions defined in echo.c */
  561. VOID            eerase
  562.                 PROTO((VOID));
  563. int             eyorn
  564.                 PROTO((char *sp));
  565. int             eyesno
  566.                 PROTO((char *sp));
  567. #ifdef    LATTICE
  568. int __stdargs   ereply
  569.                 PROTO((char *fp, char *buf, int nbuf,...));
  570. int __stdargs   eread
  571.                 PROTO((char *fp, char *buf, int nbuf, int flag,...));
  572. VOID __stdargs ewprintf PROTO((char *fp,...));
  573. #else
  574. int             ereply
  575.                 PROTO((char *fp, char *buf, int nbuf,...));
  576. int             eread
  577.                 PROTO((char *fp, char *buf, int nbuf, int flag,...));
  578. VOID            ewprintf
  579.                 PROTO((char *fp,...));
  580. #endif
  581.  
  582. /* Prototypes for functions defined in random.c */
  583. int             showcpos
  584.                 PROTO((int f, int n));
  585. int             getcolpos
  586.                 PROTO((VOID));
  587. int             twiddle
  588.                 PROTO((int f, int n));
  589. int             openline
  590.                 PROTO((int f, int n));
  591. int             newline
  592.                 PROTO((int f, int n));
  593. int             deblank
  594.                 PROTO((int f, int n));
  595. int             justone
  596.                 PROTO((int f, int n));
  597. int             delwhite
  598.                 PROTO((int f, int n));
  599. int             indent
  600.                 PROTO((int f, int n));
  601. int             forwdel
  602.                 PROTO((int f, int n));
  603. int             backdel
  604.                 PROTO((int f, int n));
  605. int             killline
  606.                 PROTO((int f, int n));
  607. int             yank
  608.                 PROTO((int f, int n));
  609. int             space_to_tabstop
  610.                 PROTO((int f, int n));
  611.  
  612. /* Prototypes for functions defined in line.c */
  613. VOID            lchange
  614.                 PROTO((int flag));
  615. int             linsert
  616.                 PROTO((int n, int c));
  617. int             lnewline
  618.                 PROTO((VOID));
  619. int             fdelete
  620.                 PROTO((RSIZE n, int flag));
  621. int             bdelete
  622.                 PROTO((RSIZE n, int flag));
  623. int             ldelnewline
  624.                 PROTO((VOID));
  625. int             lreplace
  626.                 PROTO((RSIZE plen, char *st, int f));
  627. VOID            kdelete
  628.                 PROTO((VOID));
  629. int             kinsert
  630.                 PROTO((int c, int dir));
  631. char            kremove
  632.                 PROTO((RSIZE n));
  633. int             klremove
  634.                 PROTO((char *str, RSIZE * n));
  635.  
  636. /* Prototypes for functions defined in regex.c */
  637.  
  638. #endif
  639.  
  640. #ifndef    NO_PROTO
  641. #ifndef    LOCALPROTO_H
  642. #include "localproto.h"
  643. #endif
  644. #endif
  645.  
  646. #endif
  647.